A corporate or enterprise may deploy various services across a network to serve many users. For example, a user on a client may request to access a service, such as a web server. The enterprise may deploy multiple servers to provide this service in order to meet the demand and load from a volume of users accessing the service. For example, a server farm may provide a group of servers that can process the client's request. Additionally, the enterprise may deploy a load balancer to manage access to the multiple servers and direct client requests to a suitable server based on load. A load balancer distributes the load across multiple servers or services by selecting a next server to service a received request based on a scheduling or load distribution algorithm such as round robin. The load balancer may monitor requests and responses between a client and a server to determine the load or status of the server.
The enterprise may also deploy a global server load balancer that distributes load to a geographically distributed set of server farms based on health, server load or proximity. In some cases, the global server load balances distributes the load among one or more local load balancers, which in turn distribute the load to one or more servers or server farms. In one scenario, the enterprise may deploy different types of local load balancers and servers across geographic regions and networks. For example, a first branch office may deploys servers and load balancers manufactured by a first company. A second branch office may use servers and load balancers manufactured by a second company. The global load balancer may be manufactured by yet a third company, or may be manufactured by the first or second company.
As the global load balancer, local load balancing devices and servers may be manufactured by a variety of manufactures, these devices may not be designed to directly provide status information or the same type of information to the global load balancer. Each of the local load balancing devices may collect and monitor different parameters of the servers they are managing. These different parameters may be useful to global load balancing decisions but may not be readily available to the global load balancer. Furthermore, a network administrator may have a better understanding of the characteristics and parameters of the different load balancing devices and servers that influence the global load balancing decisions. For example, the network administrator may appreciate that one local load balancer distributes load based on a first type of metric and a second local load balancer distributes load based on another type of metric.
It would, therefore, be desirable to provide systems and methods to improve load balancing among heterogenous devices.